home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
doors_2
/
uu150.zip
/
UUDEVKIT.TXT
< prev
next >
Wrap
Text File
|
1992-12-25
|
37KB
|
884 lines
Ultimate Universe Third Party Development Kit for 1.50 Christmas, 1992
======================================================
Ultimate Universe Copyright (C) 1992, TopherSoft Engineering
I have had a lot of fun over the years developing Ultimate Universe. And a
lot of people have contributed a lot of very good ideas and suggestions to
making this a enjoyable program.
Recently I have entered into a long term project to make Ultimate Universe
a multi-access program so that multi-node BBSs can allow many players to
play simultaneously. Due to the meandering (re: sloppy) construction of
Ultimate Universe this is going to be a lengthly project. I expect that the
game with not expand and evolve much once this project begins, until it ends.
With that in mind I am releasing the file structures to the various game
files in the hopes that some person or persons may wish to create add ons
in the form of Additional Daily Suppliments or Editors or what not.
I am also pretty easy to reach by phone and don't mind answering questions.
My number is 508-693-7396. This number is a Searchlight BBS running at 14400
bps.
All information herein applies to versions 1.40 thru 1.50.
Ultimate Universe is written in BC++ 3.1 using only the C aspect of the
compiler. The file formats will be displayed as C structures.
This text file contains:
The Structures for GALAXY.UU, LINK.UU, PORT.UU, PLANET.UU,
SPY.UU, TALLY.UU, CUBE.UU & SHIP.UU.
A routine for staying compatable with FILE.DIR.
A routine for accessing CONFIG.UU and what it means.
==============================================================================
/***************
*
* GALAXY.UU
*
***************/
The Galaxy File contains most of the information about things contained in
the galaxy. It contains one record for each sector of the universe. It also
contains an opening zeroth sector record which contains the following data:
Record Zero:
GALAXY.PORTER : Contains the Sector the Ultimate Unifier is in.
GALAXY.WARP_SHIELD : The Age of the Universe in Days.
GALAXY.ORM : The Current Maximum Number of Sectors.
On additional records each sector is it's own record number.
Galaxy's structure is as follows:
typedef struct
begin
int SECTOR; : The Sector Number (and Record Number)
LOBJ FIGHT; : NUM is the number of Attack Drones
: OWN is the owner's record number
if PRG is 2 team's record number
: PRG the programming mode
LOBJ MINE; : NUM is the number of Sector Mines
: OWN is the owner's record number
if PRG is 2 team's record number
: PRG the programming mode
long PORT; : The file offset in the PORT.UU file
for the port in this sector. Zero if none.
long PLANET; : The file offset in the PLANET.UU file
for the planet in this sector. Zero if none.
char PLANET_ID; : owner's record number.
: Set to 50 for independent
: Set to 53-55 for Meanderer thru Destroyer.
char REPLICATOR; : Mine Replicator. Mine Count is increased
by MINE.NUM/REPLICATOR.
int PORTER; : Sector Destination of Teleport Satellite
long PORTER_CLOAK; : Cloaking Energy of Teleport Satellite
int WARP_SHIELD; : Ergs of Warp Shielding
char DAMPER; : Owner Id of Sector Damper
char LAST_SHIP; : Owner Id of Last Ship in Sector
int ORM; : ORM Link Sector Number
char BLACKHOLE; : 1 = Holographic Black Hole
: 2 = Wandering Black Hole
: 3 = Man made Black Hole
char CABAL_REPORT; : Whether the Cabal in this Sector have been
reported.
char DECOY; : Ship ID of Holographic Ship Decoy
long DECOY2; : File offset for Holographic Planet Decoy
long DECOY_FIGHT; : Drone display for Holographic Ship Decoy
char MESSAGE_BEACON;: 1 = yes there is a message for this sector.
char SPY_WARD; : Number of Spy Wards.
char HOMING_TRAP; : If set to 127 an open trap is waiting to
grab a Ship ID.
If set to 0 no homing trap.
Else it is set to a Ship ID.
int PLATFORM; : Number of Platform Device Bay Missiles.
char ASNARE; : Ship Id of Autopilot Snare Owner
char TRIPWIRE; : Ship Id of Passage Tripwire Owner.
char FLASHWIRE; : Ship Id of Flashwire Owner.
int REFLECT; : Sector to Display Sector As.
(See Sector Reflector)
char TOLLSTATION; : Ship Id of owner of Tollstation.
long TOLLFEE; : Amount to Charge for safe passage.
long TOLLCOFFER; : Total Amount Currently Collected.
char TOLLTYPE; : Type of Tollstation.
char NAGATOR; : Ship Id of Owner of Overspace Navigation
Nagator
char POPPER; : Ship Id of owner of Sector Popper.
char SETTINGS; : obsolete, not used.
char LINKSUPPRESSER;: Ship Id of owner of Warp Link Suppressor.
char DELACOOS; : Ship Id of owner of Delacoos Drive Disruptor.
char MADNESS; : Level of Space Madness Virus Present.
char EXPLODE_DECOY; : Id Explosive Decoy is Copying
Uses DECOY_FIGHT for number of drones.
char MINE_LAUNCHER; : Mines/MINE_LAUNCHER are launched into
another Sector during Event.
int MINE_DESTINATION; : This is the Sector the Mines are Launched
to. If Zero destination is random.
char DAMPER_TRIPWIRE; : Id of Owner of Tripwire
int misc3;
long misc4;
long misc5;
long misc6;
float misc7;
end FILE1;
typedef struct
begin
long NUM;
char OWN;
char PRG;
end LOBJ;
==============================================================================
/****************
*
* LINK.UU
*
****************/
The Galaxya file simply contains the eight potential warp links that each
sector has. A value of zero indicates no warp link. A sector number is the
sector number that this sector is warp linked to. A negative value is a
phantom link indicating that a sector (the absolute value of the that number)
used to be connected to that sector.
LINK.UU's structure is as follows:
typedef struct
begin
int LINK[8];
end FILE1A;
==============================================================================
/***************
*
* PORT.UU
*
***************/
The Port File contains information about the port in a sector.
The first record is a dummy blank record and the second record is the
Procurator. If there is a port in a sector the field GALAXY.PORT will
contain the offset to the port record, such that:
"fseek(portstream, GALAXY.PORT, 0)"
will position the record pointer at the the start of the port record.
If GALAXY.PORT is zero then no port exists.
The structure of the port file is as follows:
typedef struct
begin
char NAME[30]; : The name of the port.
char TYPE; : The type of the port
1 - sells Ore, 2 - Organics, etc.
11 - Sol, 12 - Mars, etc.
21 - Procurator.
long TRADE[5]; : The number of units of cargo available for
buying or selling per type of cargo.
float RATES[5]; : The current rate for one unit of cargo per type.
char SELL[5]; : Obsolete, no longer in use.
long SWAP; : Used for Procurator Movement.
int misc1; : for future use.
char MADNESS; : Level of Space Madness Virus Present.
long misc1;
long misc2;
long misc3;
char misc4;
float misc5;
end FILE6;
=============================================================================
/***************
* 1 = Wanderer
* PLANET.UU 2 = Watcher
* 3 = Destroyer
***************/
The Planet File contains information about the planet in a sector.
The first record is a dummy blank record. The first thru third records
contain the Taakian Wandering planets (Record 1 = Meanderer, 2 = Watcher,
3 = Destroyer).
If there is a planet in a sector the field GALAXY.PLANET will contain the
offset to the planet record, such that:
"fseek(planetstream, GALAXY.PLANET, 0)"
will position the record pointer at the the start of the planet record.
If GALAXY.PLANET is zero then no planet exists.
There is no way to trace from the Planet file what sector the planet is in.
The structure of the planet file is as follows:
typedef struct
begin
char NAME[30]; : The Name of the Planet
char SETTINGS; : Each bit has meaning
: bit 0 on = Planetary Defenses on.
: bit 1 on = Team Member may land.
: bit 2 on = Devices 1st Defense Strategy
: bit 3 on = Shuttle Warp Shielding to Surface.
: bit 4 on = Planet infected by Organics virus.
long CARGO[12]; : Amount of cargo per catagory.
long PRODUCTION[12]; : Amount of production per catagory.
int DEVICE; : Device ID of Planetary Device.
int DEVICE_VAR; : Variable 1 for Planetary Device.
int DEVICE_VAR2; : Variable 2 for Planetary Device.
int HYPERSECTOR; : Sector Planet will return to from Hyper
storage.
char HYPERID; : Hyper Storage Refernce Number.
char MADNESS; : Level of Space Madness Virus Prsent.
char misc1; : for future use.
int misc2; : for future use.
long misc3;
long misc4;
long misc5;
long misc6;
end FILE7;
==============================================================================
SPY.UU
The Spy file contains scant information about the detection of Attack Drones,
Sector Mines and Planets in a given sector.
Just like the GALAXY file there is one record for each sector and a dummy
zeroth record.
If any field is non zero it means that that object has been located by the
Spies.
The spy structure is as follows:
typedef struct
begin
char FIGHT; : Owner ID of Attack Drones (+56 for Team Ownership).
char MINE; : Owner ID of Sector Mines (+56 for Team Ownership).
char PLANET; : Owner ID of Planet.
end SPYFORM;
==============================================================================
CUBE.UU
The Cube file contains the information of the contents of the Hyper Cubes &
Swaps. Record zero is a dummy record, records 1 thru MAXPLAYER are the Team
Cubes and any records after that are pointed to by record numbers stored in
varaible 1 of the Hyperdevice.
Number of Device Bays in the cube is held in the Hyper Device not the file.
The structure of the Cube File is as follows:
typedef struct
begin
int OWNER; : Owner ID of Hyper Cube.
: Not really used may be incorrect in some situations.
int DEVICE[20]; : Device ID per bay.
int VAR[20]; : Device variable 1 per bay.
int VAR2[20]; : Device variable 2 per bay.
char NAME[20]; : Name of the Cube (For HyperSwaps).
end CUBEFORM;
==============================================================================
The Tally File is sort of a nothing file but with a lot of functions it's use
can speed up applications. This file is simply a one character mark indicating
whether there are Attack Drones, Sector Mines or Planets in a Sector.
This file contains a dummy zeroth record and then one character for each
sector.
typedef struct
begin
char MARK; : If Mark equals 1 there are Attack Drones or Sector Mines
or a Planet in this sector.
end TALLYFORM;
==============================================================================
/**********************
* *
* SHIP.UU *
* *
**********************/
As it's name implies the ship file contains all the information about the
condition and components of a ship. Like the GALAXY file this file contains
a dummy zeroth record.
In the zeroth record:
SHIP.TODAY contains the maximum number of players (MAXPLAYER).
SHIP.SDAMAGE contains the file format version number.
To date that is '0' for pre-140 file format and
'140' for version 140 file format.
Three extra records exist at the end of the file.
These are mostly used to house the names of the computer antagonists.
Record Number MAXPLAYER: contains the Federation.
Record Number MAXPLAYER+1: contains the Cabal.
Record Number MAXPLAYER+2: contains the Anti-Establings.
None of the information below (except Name) applies to those records.
The structure of the Ship file is as follows:
typedef struct
begin
char NAME[38]; : The name of the ship.
char TODAY; : Number of sessions used that day.
int SECTOR; : The sector the ship is in.
: Set to Zero indictates a dead ship.
char ID; : Owner ID and record number.
char TEAM; : Team ID ship belongs to. Zero means no team.
int DAYS; : Number of days the ship has survived.
int CARGO[5]; : Amount of cargo units per type
long ITEM[13]; : Amounts of supplies per item.
: See below for a list of items.
int DEVICE[32]; : Device ID per device bay.
int DEVICE_VAR[32]; : Device Variable 1 per device bay.
int DEVICE_VAR2[32]; : Device Variable 2 per device bay.
int BOARDNO; : Registration Number of Game ship was created under.
: This is zero for unregistered versions.
: May vary from Game ID number if ship is Imported.
int COUNT; : A unique number when combined with BOARDNO that
: can differentate that ship from all other ships
: anywhere.
char PLAYER[25]; : The Players login name.
: Set to NULL indictates a free area to create a
: new ship.
char BAYS; : The number of device bays.
long SECONDS; : Number of seconds remaining that day.
char INACTIVE; : Number of days on inactivity.
char DIMENSION; : Dimension the Ship is currently in.
long FINES; : Amount of Federation Fines accrued.
long DEBT; : Amount of Federation Debt accrued.
int SDAMAGE; : Number of seconds of sensor damage.
long MINES_KILLED; : Number of Cabal Sector Mines destroyed.
long CABAL_KILLED; : Number of Cabal Attack Drones destroyed.
char FED_HOSTILE; : Set to non zero if ship has been declared an
: enemy of the Federation.
char COMPUTER; : Set to non zero if ship's computer is damaged.
char MADNESS; : Indicts Level of Space Madness Virus Present.
int IMPORT; : Importation Copy Number;
char EXPERT_LEVEL; : Toggle (0 or 1) sets expert display mode.
long FIRST_DEVICE; : The maximum amount for free device at port 6.
: Set to zero after use.
long SESSION; : The amount seconds left in the current session.
char misc2;
long misc3;
long misc4;
end FILE2;
Following is a break down of the Cargo and Item arrays:
CARGO[0] = ore
CARGO[1] = organics
CARGO[2] = equipment
CARGO[3] = power
CARGO[4] = water
ITEM[0] = credits
ITEM[1] = fuel units
ITEM[2] = cargo holds
ITEM[3] = attack drones
ITEM[4] = sector mines
ITEM[5] = cloaking energy
ITEM[6] = anticloaking energy
ITEM[7] = plasma warps
ITEM[8] = gate warps
ITEM[9] = flash warps
ITEM[10] = genesis devices
ITEM[11] = planetary probes
ITEM[12] = for future use
==============================================================================
File.DIR contains the filenames and paths to most of the Ultimate Universe
files. While it is rare that any sysop or home user changes these it is best
to make sure that any third party application has respect for FILE.DIR.
Following is a routine showing how FILE.DIR is used:
─────────────────────────────────────────────────────────────────────────────
extern char pfn[100];
extern int current_universe;
void get_path(int fd)
{
FILE *stream;
int fx = 0;
static char fname[30][13], fdir[30][60];
if(!fd)
{
if((stream=_fsopen("FILE.DIR","rt",SH_DENYNO))==NULL)
{
perror("Can't Locate FILE.DIR");
exit(22);
}
while(TRUE)
{
if((fscanf(stream,"%s %s",fname[fx] ,fdir[fx]))==EOF) break;
if(fname[fx++][0]=='~') break;
}
fclose(stream);
return;
}
strcpy(pfn, fdir[fd]);
strcat(pfn, fname[fd]);
if(fd<=12)
{
char conv[12] = {"U123456789"};
for(fx=0;pfn[fx]!=NULL;fx++) ;
pfn[fx] = conv[current_universe];
pfn[++fx] = NULL;
}
{
──────────────────────────────────────────────────────────────── ─────────────
get_path should be initialized with "get_path(0)" once before the routine is
initially used.
Each file has a unique "fd" which can be defines as follows:
#define Bank 1
#define Config 2
#define Flea 3
#define Galaxy 4
#define Link 5
#define Mbeacon 6
#define Newpaper 7
#define Planet 8
#define Port 9
#define Spy 10
#define Tally 11
#define Warzine 12
#define Count 13
#define Cube 14
#define Device 15
#define History 16
#define Id 17
#define Macro 18
#define Portname 19
#define Radio 20
#define Rank 21
#define Ship 22
#define Team 23
#define Words 24
#define WordsIndex 25
#define ImportCheck 26
#define EXport 27
#define Door 28
So a call of "get_path(Ship)" would leave string array "pfn" containing the
full path and file name leading to the Ship file.
The name or location of the file should never be assumed.
current_universe points to the active dimension.
The active dimension is important to selecting the proper file.
Remember that Shareware versions deal strictly with Dimension 0.
The presence of a dimension can be determined by checking for the existance of
CONFIG.Ux where 'x' is the number of the dimension (or 'U' if dimension 0).
==============================================================================
CONFIG.UU contains all the variables that can be configured by CONFIG.EXE.
The format of the Configuration file is as follows:
typedef struct
begin
char VAR[30]; : an identifier string for the variable.
long VAL; : the contents of the variable.
end CONFORM;
There are well over 100 variables and I will lay them out below.
If you wish to add a variable to CONFIG for use in your application, let me
know and I may consider adding it to CONFIG.EXE.
A routine for reading a Config variable would look like this:
long get_config(char *SEARCH)
begin
int confg;
CONFORM CONFIG;
long VALUE = 0L;
get_path(Config);
if((confg=open(pfn,O_RDWR|O_BINARY,S_IWRITE|S_IREAD))==-1) filerror(pfn,1);
while(VALUE == 0L)
begin
if((read(confg, &CONFIG, sizeof(CONFIG)))<1) break;
if(strcmp(CONFIG.VAR,SEARCH)==0)
begin
VALUE = CONFIG.VAL;
break;
end
end
close(confg);
return(VALUE);
end
*┌──────────────────────────────────────────────────────────────────────────┐
*│ Below are contained the Configuration Variables currently used by UU. │
*│ To get the value of a configuation variable use the above routine in │
*│ the following manner: │
*│ To get the current version number for instance type: │
*│ long ver = config("<VERSION">); │
*└──────────────────────────────────────────────────────────────────────────┘
*
*┌───────────────────────────────────────────────────────────────────────────┐
*│ VERSION contains the actual version number of the Ultimate Universe game. │
*└───────────────────────────────────────────────────────────────────────────┘
<VERSION> 150
*┌───────────────────────────────────────────────────────────────────────────┐
*│ BBS sets whether Game is to be run from a BBS or as a Stand Alone. │
*│ If BBS is set to 0 Ultimate Universe acts as a Stand Alone, │
*│ Prompts for Player Name and takes Parameters from │
*│ COLOR, ANSI and MINUTES. │
*│ if BBS set above 0 Ultimate Universe acts as a BBS Doors programs. │
*│ Player Name, Color, Ansi and Minutes are taken from │
*│ Command Line Parameters. │
*│ │
*│ BBS should be set to 1 for use from Searchlight BBS. │
*│ Support for other BBSs to follow shortly. │
*└───────────────────────────────────────────────────────────────────────────┘
<BBS> 1 * 0 = Stand Alone
* 1 = Searchlight BBS
<COLOR> 1 * 0 = B&W, 1 = Color
<ANSI> 1 * 0 = Remote Viewing Disabled
* 1 = Remote Viewing Player Selectable
* 2 = Remote Viewing Enabled
<MINUTES> 50 * Minutes Player is Allowed to Play
* With BBS set above 0 sets Maximum Playing Time
* to the Lower of MINUTES and Time Left on the
* Board.
<COMMTYPE> 0 * 0 = No Communications support
* 1 = Internal Communications support
* 2 = Fossil Driver support
<VIDEO> 1 * Covers the Method of Screen Writing
* 0 = Bios Calls, 1 = Direct to Ram
* Should be 0 for most BBSs or less compatible
* computers.
<MODEMSIM> 0 * When in Local Mode, MODEMSIM > 1 causes a
* delay in output simulating the delay caused
* to players. Thus the SYSOP is not granted
* an unfair advantage. The greater the number
* the greater the delay.
<LOG> 0 *
*┌───────────────────────────────────────────────────────────────────────────┐
*│ MAXSECTOR is The number of sectors in the Galaxy │
*│ If UUD or the Autopilot runs too slow on your system reduce MAXSECTOR. │
*│ Memory and Hard disk space are also considerations on this value. │
*│ MAXSECTOR is only read when UUD RESET is run. │
*│ Do not exceed 4000 or it WILL crash your system. │
*└───────────────────────────────────────────────────────────────────────────┘
<MAXSECTOR> 1500
*─────────────────────────────────────────────────────────────────────────────
* MAXPLAYER is The number of players that can play in a given campaign
* Must not exceed 28
<MAXPLAYER> 28
*─────────────────────────────────────────────────────────────────────────────
* The Colonization function allows expanstion of the Universe
* TRUESECTOR sets the absolute total of sectors the universe might gain.
* Maxsector + 100 is usually sufficient
<TRUESECTOR> 2000 * must not exceed 4000
*─────────────────────────────────────────────────────────────────────────────
* PLAYS is the number of times per day a player may login
<PLAYS> 3
*─────────────────────────────────────────────────────────────────────────────
* INACTIVE is the number of days a player may not play before being removed
* from the game.
<INACTIVE> 30
*─────────────────────────────────────────────────────────────────────────────
* PORT.PROB sets the density of ports in the universe.
* Setting it to 100 would that each sector had a 100% chance of having a port.
* A Setting of 45 would give a 45% chance.
* The setting should be atleast 1 and shouldn't exceed 99.
<PORT.PROB> 43
*─────────────────────────────────────────────────────────────────────────────
* WARP.PROB must be a number from 1 to 8 (I would leave it four)
* lowering this number causes less warps between sectors. Raising it causes
* more and increases the chance for natural gate warps.
<WARP.PROB> 3 * must be from 1 to 8
*─────────────────────────────────────────────────────────────────────────────
* SPY.PROB must be a number from 1 to MAXSECTOR
* lowering this number increases the thoroughness of the spies.
* MAXSECTOR/SPY.PROB is the number of sectors the spies check.
<SPY.PROB> 500
*─────────────────────────────────────────────────────────────────────────────
* FED_CABAL sets the starting cargo of the Federation & Cabal planets.
* the higher the number the tougher the Fed & Cabal at start.
* Set too low and the players may take the game early on.
<FED_CABAL> 800000 * should be less than 20,000,000
*─────────────────────────────────────────────────────────────────────────────
* REVERSE_LINK sets the odds of all warps being Plasma Warps as opposed to
* Gate Warps. Do not set below 0 or over 100.
*
<REVERSE_LINK> 85
*┌───────────────────────────────────────────────────────────────────────────┐
*│ The Variables RUSSIAN, JACKPOT, BLACKHOLE, LINK.DECAY & LOTTERY │
*│ are switches that control the inclusion of the random (vs stragic) │
*│ elements of the game. │
*│ With these flag set off (0) and XDEVICE 490 added to the bottom of this │
*│ file most random elements of the will be removed. │
*│ Device 490 is the pot luck suprise device. │
*└───────────────────────────────────────────────────────────────────────────┘
*RUSSIAN sets the number of days your ship must survive to be eligable to play
* Russian Roulette.
*RUSSIAN if set to 0 disables Russian Roulette
*RUSSIAN if set to -1 enables Russian Roulette at all times.
*RUSSIAN if set to -2 requires debt to be paid before playing.
<RUSSIAN> -2
*─────────────────────────────────────────────────────────────────────────────
*JACKPOT if set to 0 disables Quantum Credits
*JACKPOT if set to 1 allows Quantum Credits but only increments
* Jackpot when it is played.
*JACKPOT if set to 2 allows Quantum Credits and increments Jackpot daily.
<JACKPOT> 2
*─────────────────────────────────────────────────────────────────────────────
*BLACKHOLE if set to 0 disables wandering Taakian Blackhole feature
* non zero setting activates it.
<BLACKHOLE> 2
*─────────────────────────────────────────────────────────────────────────────
*WILDFIRE sets the Activity level of the FEDERATION, CABAL, ANTI war.
*Setting WILDFIRE to 1 causes a very active war and dramatically increases
*the time UUD takes to run after a few days.
*Setting WILDFIRE to 0 sets normal war mode.
<WILDFIRE> 1
*─────────────────────────────────────────────────────────────────────────────
*LINK.DECAY sets the maximum number of warp links that may decay during UUD.
*LINK.CREATE sets the maximum number of warps links that may appear during UUD.
*a value of zero disables either function.
<LINK.CREATE> 42
<LINK.DECAY> 35
*─────────────────────────────────────────────────────────────────────────────
*LOTTERY if set to 0 disables the opening day lottery feature.
* if set to 1 enables the lottery for the first logon of the day.
* if set to 2 enables the lottery for the first 2 logons of the day.
* etc.
<LOTTERY> 1
*─────────────────────────────────────────────────────────────────────────────
*MADNESS sets age deferment for SPACE MADNESS
*
<MADNESS> 3
*┌───────────────────────────────────────────────────────────────────────────┐
*│ START. Variables control the amounts that a ship contains when created. │
*│ Care should be taken that the value does not exceed the corresponding │
*│ LIMIT. variable. │
*└───────────────────────────────────────────────────────────────────────────┘
<START.HOLDS> 500 * limit 32000
<START.CREDIT> 2500000 * limit 2,000,000,000
<START.FIGHTER> 1000 * limit 2,000,000,000
<START.MINES> 0 * limit 1,000,000
<START.CLOAK> 1 * limit 2,000,000,000
<START.ACLOAK> 0 * limit 2,000,000,000
<START.TURNS> 200 * limit 32000
<START.WARP1> 0 * limit 32000
<START.WARP2> 0 * limit 32000
<START.WARP3> 5 * limit 32000
<START.GENESIS> 1 * limit 32000
<START.PPROBE> 1 * limit 32000
* the number of device bays
<START.BAY> 22 * limit 32
<START.PORT6> 300000 * Maximum Cost of Free First Device at Port 6
* limit LIMIT.CREDIT
*─────────────────────────────────────────────────────────────────────────────
* if START.DEVICE = device number (1-500) ship starts out with that device
* if START.DEVICE = 0 ship starts out with no device
<START.DEVICE1> 111 * invalid device number will cause weirdness
<START.DEVICE2> 490 * 490 IS A POT LUCK SURPRISE
<START.DEVICE3> 0 * check ports 6 + 8 for other numbers to use
<START.DEVICE4> 0 * run CONCOMP if you change this later
<START.DEVICE5> 0
*┌───────────────────────────────────────────────────────────────────────────┐
*│ LIMIT. Variables control the amounts that a ship can contain. │
*│ Care should be taken that the value is NOT less than the corresponding │
*│ START. variable. (see above START.LIMITS) │
*└───────────────────────────────────────────────────────────────────────────┘
<LIMITBAY> 30 * limit 32
<LIMITHOLD> 32700 * limit 32760
<LIMITTURN> 500 * limit 32000
<LIMITCREDIT> 1000000000 * limit 2,000,000,000
<LIMITFIGHTER> 2000000000 * limit 2,000,000,000
<LIMITMINE> 500000 * limit 2,000,000,000
<LIMITCLOAK> 100000000 * agrueable but I wouldn't pass 100000000
* will get weird if multi-enhancers push
* value past 2,000,000,000
<LIMITACLOAK> 100000000 * ditto
<LIMITWARP1> 4000 * limit 32000
<LIMITWARP2> 4000 * limit 32000
<LIMITWARP3> 200 * limit 32000
<LIMITGENESIS> 25 * limit 32000
<LIMITPPROBE> 100 * limit 32000
* LIMITWSHIELD sets the Maximum erg level for a Warp Shield
<LIMITWSHIELD> 30000 * limit 32000
*─────────────────────────────────────────────────────────────────────────────
* DEBT. fields set the Federations obligations
* none of these values may be zero nor may they exceed 16,000,000
<DEBT> 5000000 * debt on a new ship
<DEBT.DAYS> 10 * days of slack given before interest is charged
<DEBT.CABAL> 5 * credits given per day for Cabal drone kills
<DEBT.MINE> 250 * credits given per day for Cabal mine kills
*┌───────────────────────────────────────────────────────────────────────────┐
*│ COST. Variables control the standard (pre-sale) prices of items at SOL. │
*│ Setting a COST. variable higher than LIMITCREDIT would make it │
*│ unobtainable [this is the only occasion the setting should exceed the │
*│ maximum limit. │
*└───────────────────────────────────────────────────────────────────────────┘
<COSTHOLD> 1500 * limit 1000000
<COSTTURN> 40000 * limit 1000000
<COSTFIGHTER> 100 * limit 1000000
<COSTMINE> 20000 * limit 1000000
<COSTCLOAK> 1000 * limit 1000000
<COSTACLOAK> 2000 * limit 1000000
<COSTWARP1> 100000 * limit 1000000
<COSTWARP2> 200000 * limit 1000000
<COSTWARP3> 25000 * limit 1000000
<COSTGENESIS> 30000 * limit 1000000
<COSTPPROBE> 5000 * limit 1000000
*─────────────────────────────────────────────────────────────────────────────
* PRO variables set the planet production rates
* lowering the values increases the daily production
* do not set the value to less than 1 or higher than 32000
* This is hard to explain so adjusting it by trial and error is best.
* You can change these any time and run CONCOMP if you dont like them.
<PRO.DRONE> 30 * attack drones
<PRO.MINE> 7510 * sector mines
<PRO.CLOAK> 1300 * cloaking energy
<PRO.ACLOAK> 4700 * anticloaking energy
<PRO.NULL> 16197 * warp shield nullifiers
<PRO.SHIELD> 8983 * warp shield energy
<PRO.FLASH> 14020 * flash warps
*─────────────────────────────────────────────────────────────────────────────
* PRL variables set the maximum planet production rates
* avoid extremes
<PRL.CARGO> 200000000 * ORE, ORG etc.
<PRL.DRONE> 200000000 * attack drones
<PRL.MINE> 22000 * sector mines
<PRL.CLOAK> 3500000 * cloaking energy
<PRL.ACLOAK> 3500000 * anticloaking energy
<PRL.NULL> 15000 * warp shield nullifiers
<PRL.SHIELD> 15000 * warp shield energy
<PRL.FLASH> 50 * flash warps
*┌───────────────────────────────────────────────────────────────────────────┐
*│ The following variables set up the destructiveness of Sector Mines. │
*└───────────────────────────────────────────────────────────────────────────┘
* MINE_DAMAGE_RANDOM is the random part of a sector mine blast
* MINE_DAMAGE_BASE is the fixed part of a sector mine blast
* blast = (rand % MINE_DAMAGE_RANDOM)+MINE_DAMAGE_BASE
<MINE_DAMAGE_RANDOM> 2000 * limit 20000
<MINE_DAMAGE_BASE> 500 * limit 20000
*┌───────────────────────────────────────────────────────────────────────────┐
*│ MARS. variables set the initializing values for the Mars Port (Port 2) │
*└───────────────────────────────────────────────────────────────────────────┘
* MARS.MAXBET sets the opening maximum bet at the Mars Port (Sector 2)
<MARS.MAXBET> 500000 * limit 1,000,000,000
* MARS.COFFER sets the coffer at the Mars Port
<MARS.COFFER> 30000000 * limit 1,000,000,000
*┌───────────────────────────────────────────────────────────────────────────┐
*│ Newspaper sets the number of days the Galactic Newspaper will be kept │
*│ when UUD is run. │
*└───────────────────────────────────────────────────────────────────────────┘
<NEWSPAPER> 3 * limit 99
*┌───────────────────────────────────────────────────────────────────────────┐
*│ IMPORT and EXPORT set whether or not Importing and Exporting Ships is │
*│ allowable on in your universe. │
*│ These functions are only allowable on Registered versions and have no │
*│ effect on Shareware versions. │
*│ │
*│ If IMPORT is set to 1 Importation of outside ships is enabled. │
*│ If EXPORT is set to 1 Exportation of Ships is enabled. │
*│ A setting of 0 disables either function. │
*└───────────────────────────────────────────────────────────────────────────┘
<IMPORT> 1
<EXPORT> 0
<IMPSECTOR> 0
*┌───────────────────────────────────────────────────────────────────────────┐
*│ XDEVICE causes the device number listed to be be outlawed in the game │
*│ multiple XDEVICES can be listed │
*│ This would be useful in two situations. Say that a device is causing │
*│ the Sysops board to crash. It is traced to device #108 (the number used │
*│ to purchase the device). The Sysop then sets up XDEVICE 108 and all is │
*│ well. Or, a group of players find that device number 450 makes the game │
*│ less exciting. After complaining to the Sysop, the Sysop agrees and │
*│ sets XDEVICE 450. │
*└───────────────────────────────────────────────────────────────────────────┘
<XDEVICE0> 0
<XDEVICE1> 0
<XDEVICE2> 0
<XDEVICE3> 0
<XDEVICE4> 0
<XDEVICE5> 0
<XDEVICE6> 0
<XDEVICE7> 0
<XDEVICE8> 0
<XDEVICE9> 0
*─────────────────────────────────────────────────────────────────────────────
* END is used only to tell the config routines that it was reached the end
<END> 0
*─────────────────────────────────────────────────────────────────────────────